package com.dcy.daily.common.utils;

import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;

import java.util.Locale;

/**
 * 国际化工具类
 * @author liyamin  2021/1/27 10:19
 * @return
 */
public class I18nUtil
{
    private static final MessageSource messageSource = SpringUtil.getBean(MessageSource.class);
    /**
     * 根据消息键和参数 获取消息
     *
     * @param code 消息键
     * @param args 参数
     * @return 获取国际化翻译值
     */
    public static String message(String code, Object[] args)
    {
        if(StringUtils.isNull(args)){
           return messageSource.getMessage(code, null, LocaleContextHolder.getLocale());
        }
        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
    }

    /**
     * 根据消息键和参数 获取消息
     *
     * @param code 消息键
     * @return 获取国际化翻译值
     */
    public static String message(String code)
    {
        return message(code,null);
    }

    public static String messageOnLocal(String code,Object[] args ,Locale locale)
    {
        if(StringUtils.isNull(args)){
            return messageSource.getMessage(code, null, locale);
        }
        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
    }

    /**
     * 根据消息键和参数 获取消息
     *
     * @param code 消息键
     * @param locale 国际化属性
     * @return 获取国际化翻译值
     */
    public static String messageOnLocal(String code, Locale locale)
    {
        return messageOnLocal(code,null,locale);
    }

}
